package exercise;

import java.util.Arrays;

public class exercise02 {
    // 给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。
    // 请你找出并返回这两个正序数组的 中位数 。
    // 算法的时间复杂度应该为 O(log (m+n)) 。
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        if(nums1.length == 0 && nums2.length == 0){
            return 0.0;
        }

        int[] num3 = new int[nums1.length + nums2.length];

        int i = 0;
        int j = 0;
        int index = 0;
        while (i < nums1.length && j < nums2.length){
            if(nums1[i] <= nums2[j]){
                num3[index++] = nums1[i++];
            }else{
                num3[index++] = nums2[j++];
            }
        }
        if(i == nums1.length){
            int k = j;
            for (; k < nums2.length; k++) {
                num3[index++] = nums2[k];
            }
        }
        if(j == nums2.length){
            int k = i;
            for (; k < nums1.length; k++) {
                num3[index++] = nums1[k];
            }
        }
        return num3.length%2!=0 ? num3[num3.length/2]:((num3[num3.length/2-1]+num3[num3.length/2])/2.0);
    }

    public static void main(String[] args) {

        int[] nums1 = {};
        int[] nums2 = {2,3};
        exercise02 exercise02 = new exercise02();
        System.out.println(exercise02.findMedianSortedArrays(nums1, nums2));
    }
}
